package com.example.design.decorator;

import com.example.design.decorator.decorater.Mocha;
import com.example.design.decorator.decorater.Soy;
import com.example.design.decorator.decorater.Whip;
import com.example.design.decorator.drinks.DarkRoast;
import com.example.design.decorator.drinks.Espresso;
import com.example.design.decorator.drinks.HouseBlend;

/**
 * 装饰者模式，实现星巴克咖啡的各种风味的价格汇总
 */
public class StarBucksCoffee {
    public static void main(String[] args) {
        Beverage beverage = new Espresso();
        System.out.println(beverage.getDescription() +",$:" + beverage.cost());

        Beverage beverage2 = new DarkRoast();
        beverage2 = new Mocha(beverage2);
        beverage2 = new Mocha(beverage2);
        beverage2 = new Whip(beverage2);
        System.out.println(beverage2.getDescription() +",$:" + beverage2.cost());

        Beverage beverage3 = new HouseBlend();
        beverage3 = new Soy(beverage3);
        beverage3 = new Mocha(beverage3);
        beverage3 = new Whip(beverage3);
        System.out.println(beverage3.getDescription() +",$:" + beverage3.cost());


    }
}
